{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.ensemble import RandomForestClassifier as RFC\n",
    "from sklearn.model_selection import cross_val_score"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 手写数字降维"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(42000, 785)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv(\"../data/digit_recognizor.csv\")\n",
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = data.iloc[:, 1:]\n",
    "y = data.iloc[:,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(42000, 784)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "画累计方差贡献率曲线,找最佳降维后维度的范围"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pca_line = PCA().fit(x)\n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(np.cumsum(pca_line.explained_variance_ratio_))\n",
    "plt.xlabel(\"number of components after dimension reduction\")\n",
    "plt.ylabel(\"cumulative explained variance ratio\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "score = []\n",
    "\n",
    "for i in range(1,101,10):\n",
    "    X_dr = PCA(i).fit_transform(x)\n",
    "    once = cross_val_score(RFC(n_estimators=10,random_state=0)\n",
    "                           ,X_dr,y,cv=5).mean()\n",
    "    score.append(once)\n",
    "    \n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(range(1,101,10),score)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABI4AAAExCAYAAAAaz+meAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZhdVZ3v//eqOTWlhlQllaEyAwkkIaEIg14cEEUIIjiBbYsjYoPStt0/vd7u29721y16tb3Y0s1FpZUWQZwxoDYiitpMmQNJgJA5qVQlqSQ1pcaz7h/nVKWSFEkFKjk1vF/PU885++y19vnuKEN9+K61Q4wRSZIkSZIk6WgZ6S5AkiRJkiRJQ5PBkSRJkiRJkvplcCRJkiRJkqR+GRxJkiRJkiSpXwZHkiRJkiRJ6pfBkSRJkiRJkvo1oOAohHB5COH5EMLGEMJn+zlfGkL4aQhhTQjh6RDCOanPp4QQHgshrA8hPBdCuLXPnLIQwiMhhBdTr6WDd1uSJEmSJEl6tU4YHIUQMoE7gLcCc4HrQwhzjxr2OWBVjHE+8H7g9tTnXcCnY4xzgAuBm/vM/SzwaIxxNvBo6liSJEmSJElDRNYAxiwGNsYYNwGEEO4HrgbW9RkzF/giQIxxQwhhWghhfIyxFqhNfd4UQlgPTErNvRp4fWr+d4HfAZ85XiHjxo2L06ZNG9CNSZIkSZIk6cSWL1++N8ZY0d+5gQRHk4DtfY53ABccNWY1cC3wxxDCYmAqMBmo6xkQQpgGLASeSn3UEywRY6wNIVSeqJBp06axbNmyAZQsSZIkSZKkgQghbH25cwPZ4yj081k86vg2oDSEsAr4BLCS5DK1ngIKgR8DfxljbBzAdx7+8hBuDCEsCyEs27Nnz8lMlSRJkiRJ0qswkI6jHcCUPseTgV19B6TCoA8ChBACsDn1Qwghm2RodG+M8Sd9ptWFEKpS3UZVQH1/Xx5jvAu4C6CmpubowEqSJEmSJEmnyEA6jp4BZocQpocQcoDrgAf7DgghlKTOAXwEeDzG2JgKkb4NrI8x/vNR130QuCH1/gbg56/0JiRJkiRJkjT4ThgcxRi7gFuAXwPrgQdijM+FEG4KIdyUGjYHeC6EsIHk09duTX3+GuDPgTeGEFalfq5InbsNuCyE8CJwWepYkiRJkiRJQ0SIcfis/qqpqYluji1JkiRJkjR4QgjLY4w1/Z0byFI1SZIkSZIkjUIGR5IkSZIkSeqXwZEkSZIkSZL6ZXAkSZIkSZKkfmWluwBJkiRJkpReMUYOHuqkrrGdusY29jS1M6Usn/mTx5KXnZnu8pRGBkeSJEmSJI1QMUYa27qob2yjrrGd+qa23nDoyPftdHQljpmfk5XBuVNKuHB6GYunl7Noagn5OUYJo4n/a0uSJEmSNAw1t3dR19iWDH5SAVBPOFTf2E5dU/JcW+exgVBRbhaVxbmML87j/GllyfdFeb2flRfk8NKeFp7atI+ntzTwjcc2kvjtRrIyAvMmj2Xx9DIumF5GzbQyivOy03D3Ol1CjDHdNQxYTU1NXLZsWbrLkCRJkiTplGnt6DocBDW1p7qF2o5YRlbX2EZLR/cxc/NzMplQnEdFUTIAGp8KgiqL8xhf1PM+96S7hpraOlm+dT9Pb27g6c0NrN5xgM7uSAgwt6o4FSSVs3h6GWUFOYP1R6HTJISwPMZY0+85gyNJkiRJkk69ts7uIzqBet4f7hZKvm9q7zpmbl52RjIISnUFVRb1DYV6QqI8CnNPz8KiQx3drNx+OEhasW1/b2fT7MrCZJA0o5wLppcxvjjvtNSkV87gSJIkSZKkU6S9qzvVBdSnO6ipnfrePYWS3UIHD3UeMzcnM6NP8NMTCPV9n0tlcR7FeVmEENJwdwPT0ZVg7c4DPLW5gac2NbB8636aUwHY1PJ8LkjtkXTB9DIml44Z0vcyGhkcSZIkSZJ0kjq7E+xpaqc+tTSsvs9ysZ4lZPVN7TS0dBwzNzszUNnbHXS4I6jv+/HFuYwdkz0iQ5Su7gTra5t4avM+ntrcwDNbGjjQmgzOJo7NY3FPkDSjjBnjCkbkn8FwYnAkSZIkSSNcU1snG+ub2VjfzKa9LRxK7X+TEQIZATIyAgEIPcchEMKRxxmp49D3mKOOj3jteX/scfL6h69x7NzDNfT7SrLm3pp67+XYsf3VnZEKInqu0Xu/qVo6u+MxTxXru5dQfVMb+1o6OPpX5syMQEVhbm8n0NGdQeNT70vzc8jIMAzpkUhEXqhv4unNDb1dSXub2wEYV5hzxB5JZ44v8s/uNDM4kiRJkqQRIMbI3uaOZEC0p5mXUkHRxvpmdje29Y7Lzgzk52QRYyRGSMRIIvUaU9fpPR4+vxKeUhkBylOBUHIfocN7CPWEQ5XFuZQX5JJpqPGqxRjZvLeld4+kpzY3sPPAIQDGjsnm/GmlvUHS2ROLycrMSHPFI9vxgqPTs2uWJEmSJGnAEonIzgOHjgmHNu5p7l3uA1CQk8msykIunlXOrMpCZlUUMquykOqy/JP6RfvoIClxROCUCpsSRx73N7ZvSBWPfiWSSBweF+n7nT1j+3xHf8d9rpGIQJ9r9HzX0UEZLxOcZWaEIzaYLi/IMZw4jUIIzKgoZEZFIdctrgZgx/7WZIi0qYGntzTwm/X1QPL/5+dNK0vtk1TG/Mljyc3KTGf5o4odR5IkSZKUJp3dCbbuazkcDNU382J9M5v2tHCo8/Cj1ssLcphZWXhEODSrspCqsXnuDaMRq76xjadSHUlPb27g+bomAHKzMlhYXcLi6eVcOL2MhdWljMkxSHo1XKomSZIkSWnU2tHFpj0tfcKhJjbWN7N1XytdicO/k00qGZMMiPqEQ7MqCykryElj9dLQ0NDSwTNbepa27WPdrkYSMbk0c96ksVwwI7m0rWZqKUV52ekud1gxOJIkSZKk0+BAa8cRnUM973v2boHk5spTy/OPCYdmVhRSkOtuItJANbZ1snzr/tTytn2s2XGQrkQkI8DcicW9eyQtnlZGqeHrcRkcSZIkSdIgiTFS19h+ROfQxvpmXtrTzN7mw49lz83KYOZR4dCsykKmlReQk+VeOtJgO9TRzcpt+3lycwNPb97Hym0HaO9KAHDm+KJkiDQ9uVdSZXFemqsdWgyOJEmSJOkkdSci2xtaj+gc2rinmU31zTS1d/WOK87LOiYcmlVRxKTSMT59S0qj9q5u1uw42PvUtuVbGmjpSO4dNn1cAYunlXHBjGSYNLk0P83VppfBkSRJkiS9jLbObjbvbTkiHHqpvplNe1voSHUrAFQW5R4VDhUya3whFYW5blAtDQNd3Qme29XYu0fS05sbaGxLhsCTSsb0PrVt8fQypo8rGFV/XRscSZIkSRr1mto6jwmHNtY3s62hlZ79qUOAKaX5x4RDMysKGTvGzXalkSSRiDxf13REkNSz3LSiKLd3Wdvi6WWcUVlExgjuIDQ4kiRJkjQqxBjZ29xxTDi0sb6Z3Y1tveOyMwPTxxX0hkMzKwuZXVnEjIoC8rJ9rLc0GsUY2bS3hac2JfdIempzA7UHk3/fKMnP5vxpySDpgunlzKkqIitz5OxVZnAkSZIkaURJJCI7Dxw6Ihzq2Yvo4KHO3nH5OZlHhEOzKguZXVlIdVn+iPqlT9LgizGyY/8hnkpttv305ga27GsFoDA3i/OmlnLn+85jTM7wD5uPFxz5rEdJkiRplIsx0tkd6exO0NUd6UykXrsTyc8SkY6u5GtXd+Lw2ETiyHmpsZ2pMV2p+Z3d8ZixXYkEHV3J167uSEd3gq5+5x953Z7vaW7v6n1aEkBZQQ6zKgq5Yl5Vbzg0q7KQqrF5o2qfEkmDJ4TAlLJ8ppTl887zJgOw+2AbT29JBklb97WOiNDoRAyOJEmSpCGivaubF+ua2bC7iQOtHX2ClgSdiUhn17EBSmein4Cmq//w54iAJhUQdXZHuhOnfhVCZkYgKyOQk5lBVmYgKzPj8PuMQHZmBtmp4+yMDPKyM8jKzSI7M5CVkUF2VgbZGSF5PjODMdmZTK8oYHZlEbMqCykryDnl9yBJE8bm8bYFE3nbgonpLuW0MTiSJEmS0mBPUzvraxv7/DTx0p5mul4mxOkNUFLBSU+Akp2ZQVZGTxCTfM3KCBTmZvX5vCeg6W/+4c+zUtfr77uyMjLIyUq+ZmX2BEAZfUKfo66b0RMQJYOgkbyprCSNZAMKjkIIlwO3A5nAt2KMtx11vhS4G5gJtAEfijE+mzp3N7AEqI8xntNnzueBjwJ7Uh99Lsb48Ku6G0mSJGmI6exOsGlPS29AtC4VEu1tbu8dM6E4jzlVRVw6p5I5VcXMqSqmsjiX7FR4k5kRXG4lSUqLEwZHIYRM4A7gMmAH8EwI4cEY47o+wz4HrIoxXhNCOCs1/tLUue8A3wDu6efyX4sxfuVV1C9JkiQNGQdaO3qDoZ6g6MW6Zjq6k3vx5GRmMKuykNedUcGcqiLmpkKiUpdZSZKGqIF0HC0GNsYYNwGEEO4Hrgb6BkdzgS8CxBg3hBCmhRDGxxjrYoyPhxCmDW7ZkiRJUvp0JyJb97WkQqLDQVHPY5sBxhXmMKeqmA+8ZhpzqoqYU1XMzIpCsn2SlyRpGBlIcDQJ2N7neAdwwVFjVgPXAn8MISwGpgKTgboTXPuWEML7gWXAp2OM+wdUtSRJknSaNLd3saF3mVkyIHp+dxOHOruB5KbPMysKWDy9rHeZ2ZyqIiqL8tJcuSRJr95AgqP+FlMfvWPfbcDtIYRVwFpgJdB1guv+G/CF1LW+AHwV+NAxXx7CjcCNANXV1QMoV5IkSTp5MUZ27D/Up4so2Um0raG1d8zYMdnMqSriusVTmFNVzNyqYmZVFpKXPfIfxyxJGp0GEhztAKb0OZ4M7Oo7IMbYCHwQICR37duc+nlZMcbebqQQwjeBpS8z7i7gLoCamppT/5xQSZIkjXiHOrp5vq7piKeabahtoqk9+d8+Q4Dp5QXMmzSWd9dM7u0kqhqb5ybVkqRRZSDB0TPA7BDCdGAncB3w3r4DQgglQGuMsQP4CPB4Kkx6WSGEqhhjberwGuDZky1ekiRJOp4YI7sb23q7h3q6ibbsbaHnqfeFuVmcNaGIty+c1LvM7MwJReTnDOgBxJIkjWgn/KdhjLErhHAL8GsgE7g7xvhcCOGm1Pk7gTnAPSGEbpKbZn+4Z34I4T7g9cC4EMIO4O9jjN8GvhxCOJfkUrUtwMcG88YkSZI0urR3dfNiXfMRm1Wv393IgdbO3jFTysYwZ0IxV82f2LvUbHLpGDIy7CKSJKk/Icbhs/qrpqYmLlu2LN1lSJIkKc32NrcnN6vedXgvopf2NNOVaiPKy87gzAnFzE09zWxOVTFnTiiiOC87zZVLkjT0hBCWxxhr+jtn/60kSZKGrK7uBJv2tqSeaHa4k2hPU3vvmAnFecypKuLSOZXJLqKJxUwrLyDTLiJJkl41gyNJkiQNCQdbO498otnuRl6oa6ajKwFATmYGsyoLuWR2BXOqipib6iQqLchJc+WSJI1cBkeSJEk6rRKJyNaG1j7LzJI/uw629Y4ZV5jDnKpiPnDxNOaklpvNrCgkOzMjjZVLkjT6GBxJkiTplGpq62T19oOs2LafFdv2s3LbAQ4eSm5YnZkRmFlRwPnTy3r3IppTVURlUV6aq5YkSWBwJEmSpEEUY2TT3hZWbN3Pim0HWLltP8/XNREjhACzKwt56zkTWFhdwtkTxzKrspC87Mx0ly1Jkl6GwZEkSZJeseb2LlZvP5AKivazcvsBDrQmu4mK8rJYWF3K5edMYFF1KedWl/hUM0mShhmDI0mSJA1IjJHNe1tYse1ActnZ1v28UNdEIibPz64s5C1zJ7BoagmLqkuZWVFIhk82kyRpWDM4kiRJUr9aerqJth1edra/TzfRuVNKeMvZE1g0tZRzp5QwdozdRJIkjTQGR5IkSSLGyJZ9rb1LzlZsO8Dzuxt7u4lmVRZy2dzxLKouZdHUUmbZTSRJ0qhgcCRJkjQKtbR3sXrHAVZuS+5PtHL7ARpaOgAoys3i3OoSLnvjbBZVl7BwSilj8+0mkiRpNDI4kiRJGuFijGzd15rqJNrPiq0H2NCnm2hmRQGXnlXJoqmlLKouZVZlIZl2E0mSJAyOJEmSRpzWji5Wbz+YfMrZtv2s3HaAfaluosLc5N5Et7xhFgunlrJwSgkl+TlprliSJA1VBkeSJEnDWIyRbQ2tvZ1EK7btZ8PuJrpT7UQzKgp4w1mVqb2JSphdWWQ3kSRJGjCDI0mSpGHkUEc3q3cc6A2KVm3fz97mZDdRQU4m51aX8Bevn8mi6uSTzkoL7CaSJEmvnMGRJEnSEBVjZHvDocN7E23bz/raPt1E4wp43RmVLJpawqLqUs4YbzeRJEkaXAZHkiRJQ8Shjm7W7DjAim0Hevcn6ttNtGBKCR9/3UwWTU0+6cxuIkmSdKoZHEmSJKVBjJEd+1PdRFv3s2LbAdbXNtKV6iaaVp7PJbMrep90duYEu4kkSdLpZ3AkSZJ0GrR1drNmx8EjgqK9ze0AjMnOZMGUsdx4yQwWVZeysLqE8sLcNFcsSZJkcCRJkjTo+nYTrUwtO1u363A30dTyfP7b7HEsqi5hYXUpZ00oIiszI81VS5IkHcvgSJIk6QQOdXTT0NrB/pYO9rd2sL+1kwOtHTS0dHCgtZOG1Oc97w+0dtDS0Q0ku4nmTx7LR/t0E42zm0iSJA0TBkeSJGnUiDHS3N7F/pbOVACU+jniuDMVEHX2BkXtXYmXvWZRXhZlBTmU5OcwrjCH2ZWFlOTnMG1cPovsJpIkScOcwZEkSRqWEolIY1sn+/t0+fR0APUNhBpak+d6uoQ6u2O/1wsBSsZkU1qQQ2l+DpNK8jhnYnHvcWl+NiX5OZQVJN+XFuQwdkw22YZCkiRpBDM4kiRJadfVneDAoZ7lX52pZV/J9z2BUO/ysNSSsAOtHST6z4DIygiU5B8OeKaPK+C8VFdQaX52KgjKSYVCyePiMdk+tUySJOkoBkeSJGlQtXd1H+766bsErGf5Vz/vG9u6XvZ6OVkZlOXnUJIKeOZMKKYkP7t3eVhPOFSan5McV5BNUW4WIRgCSZIkvVoGR5Ik6aQcaO3gvqe3U9fYdtSeQMkQqGdT6P7k52SmOn2SIVB1Wf4RS8B6AqHS/MPvx2RnGgJJkiSlicGRJEkasCc37eNTP1hF7cE2ivKyepd7lRfmMKuysHcvoL77ApX2CYLysjPTfQuSJEk6CQMKjkIIlwO3A5nAt2KMtx11vhS4G5gJtAEfijE+mzp3N7AEqI8xntNnThnwA2AasAV4d4xx/6u8H0mSdAp0dSf4+qMv8o3HNjK1vIBf3PJa5k0em+6yJEmSdIqd8DEgIYRM4A7grcBc4PoQwtyjhn0OWBVjnA+8n2TI1OM7wOX9XPqzwKMxxtnAo6ljSZI0xGxvaOU9dz3J13+7kWsXTWbpJwyNJEmSRouBPD92MbAxxrgpxtgB3A9cfdSYuSTDH2KMG4BpIYTxqePHgYZ+rns18N3U++8Cbz/58iVJ0qn0i9W7uOLrf+CF3U18/fqFfOVdCyjIdaW7JEnSaDGQf/ObBGzvc7wDuOCoMauBa4E/hhAWA1OByUDdca47PsZYCxBjrA0hVA64akmSdEq1tHfx+Qef44fLd7CwuoSvX7eQKWX56S5LkiRJp9lAgqP+HmMSjzq+Dbg9hLAKWAusBF7+ubonIYRwI3AjQHV19WBcUpIkHcezOw/yyftWsnlfC7e8YRa3vmk22ZkDaVKWJEnSSDOQ4GgHMKXP8WRgV98BMcZG4IMAIfm83M2pn+OpCyFUpbqNqoD6/gbFGO8C7gKoqak5OrCSJEmDJJGI3P2nzXzpVxsoL8jl+x+5kItmlqe7LEmSJKXRQIKjZ4DZIYTpwE7gOuC9fQeEEEqA1tQeSB8BHk+FScfzIHADyW6lG4Cfn2TtkiRpkOxpaufTP1zN4y/s4c1zx/Old8yntCAn3WVJkiQpzU4YHMUYu0IItwC/BjKBu2OMz4UQbkqdvxOYA9wTQugG1gEf7pkfQrgPeD0wLoSwA/j7GOO3SQZGD4QQPgxsA941qHcmSZIG5HfP1/PXP1xNU1sX///bz+HPLqgm2UAsSZKk0S7EOHxWf9XU1MRly5aluwxJkkaE9q5uvvyr5/n2Hzdz5vgi/uW9CzljfFG6y5IkSdJpFkJYHmOs6e+cz9OVJGkUemlPM5+8byXP7Wrk/RdN5XNXzCEvOzPdZUmSJGmIMTiSJGkUiTHyw2U7+PsHnyMvO4Nvvr+Gy+aOT3dZkiRJGqIMjiRJGiUOHurkcz9dy0NrarloRjlfe8+5TBibl+6yJEmSNIQZHEmSNAos39rAJ+9bxe7GNv7mLWdy0+tmkpnhBtiSJEk6PoMjSZJGsO5E5I7HNnL7oy8ysSSPH910EQurS9NdliRJkoYJgyNJkkaoXQcO8Zc/WMXTmxt4+7kT+cLbz6EoLzvdZUmSJGkYMTiSJGkE+tWztXzmx2vp6k7wz+9ewLWLJqe7JEmSJA1DBkeSJI0ghzq6+Yel67jv6W0smDyW269byLRxBekuS5IkScOUwZEkSSPEul2NfPL+lWysb+Zjr5vBpy87k5ysjHSXJUmSpGHM4EiSpGEuxsh3/2sL//TLDYwdk833PnwBr509Lt1lSZIkaQQwOJIkaRjb19zO//ejNTy6oZ43nlXJ/37nfMoLc9NdliRJkkYIgyNJkoapP764l796YBUHDnXy+avmcsPF0wghpLssSZIkjSAGR5IkDTMdXQm++sjz3PX4JmZWFPLdDy1mTlVxusuSJEnSCGRwJEnSMLJlbwufvH8la3Yc5PrF1fzPJXMZk5OZ7rIkSZI0QhkcSZI0TPxkxQ7+7mfPkpWZwZ3vW8Tl51SluyRJkiSNcAZHkiQNcU1tnfzdz57lZ6t2sXh6Gf/nPecysWRMusuSJEnSKGBwJEnSELZy235uvX8VOw8c4q8uO4Ob3zCLzAw3wJYkSdLpYXAkSdIQ1J2I3Pn7l/jaIy8wvjiPBz52IedNLUt3WZIkSRplDI4kSRpidh9s41M/WMUTm/axZH4V/3jNPMaOyU53WZIkSRqFDI4kSRpCfrOujr/50WraOhN8+R3zeVfNZEJwaZokSZLSw+BIkqQhoK2zm396eD33PLGVsycW8/XrFzKzojDdZUmSJGmUMziSJCnNXqhr4hPfX8nzdU185LXT+ZvLzyQ3KzPdZUmSJEkGR5IkpUuMkXuf2sYXlq6jKC+L73zwfF5/ZmW6y5IkSZJ6GRxJkpQG+1s6+MyP1/Cf6+q45IwKvvquBVQU5aa7LEmSJOkIBkeSJJ1mT7y0j0/9YBX7Wtr52yvn8KHXTCcjww2wJUmSNPQYHEmSdJp0die4/TcvcsfvNjK9vIBv3fAazpk0Nt1lSZIkSS8rYyCDQgiXhxCeDyFsDCF8tp/zpSGEn4YQ1oQQng4hnHOiuSGEz4cQdoYQVqV+rhicW5IkaejZ3tDKu//vE3zjsY28c9FkfvGJ1xoaSZIkacg7YcdRCCETuAO4DNgBPBNCeDDGuK7PsM8Bq2KM14QQzkqNv3QAc78WY/zKIN6PJElDzs9X7eRvf/osAP9y/UKuWjAxzRVJkiRJAzOQpWqLgY0xxk0AIYT7gauBvsHRXOCLADHGDSGEaSGE8cCMAcyVJGlEamnv4u8ffI4fLd/BouoSbr9uIVPK8tNdliRJkjRgA1mqNgnY3ud4R+qzvlYD1wKEEBYDU4HJA5h7S2p5290hhNKTrF2SpCFr7Y6DLPmXP/KTFTv45Btn8cDHLjI0kiRJ0rAzkOCov8e8xKOObwNKQwirgE8AK4GuE8z9N2AmcC5QC3y13y8P4cYQwrIQwrI9e/YMoFxJktInkYjc9fhLXPtvf6Kts5v7Pnohf/XmM8nKHNC2gpIkSdKQMpClajuAKX2OJwO7+g6IMTYCHwQIIQRgc+on/+Xmxhjrej4MIXwTWNrfl8cY7wLuAqipqTk6sJIkaciob2rj0w+s5g8v7uXysydw2zvmUZKfk+6yJEmSpFdsIMHRM8DsEMJ0YCdwHfDevgNCCCVAa4yxA/gI8HiMsTGE8LJzQwhVMcba1CWuAZ4djBuSJCkdHttQz1//cDUtHV384zXn8N7F1ST/W4okSZI0fJ0wOIoxdoUQbgF+DWQCd8cYnwsh3JQ6fycwB7gnhNBNcuPrDx9vburSXw4hnEty6doW4GODemeSJJ0G7V3dfOmXz3P3nzZz1oQi7r/+QmaPL0p3WZIkSdKgCDEOn9VfNTU1cdmyZekuQ5IkADbWN/PJ+1ayrraRD1w8jc++9SzysjPTXZYkSZJ0UkIIy2OMNf2dG8hSNUmS1EeMkR88s53/9Yt1jMnJ5Ns31HDpnPHpLkuSJEkadAZHkiSdhIOtnfz3n67h4bW7ec2scv753ecyvjgv3WVJkiRJp4TBkSRJA7RsSwO33r+KusY2PnP5WXzskhlkZLgBtiRJkkYugyNJkk6gqzvBNx7byNcffZEpZfn86OMXc+6UknSXJUmSJJ1yBkeSJB3HzgOH+Mv7V/LMlv1cu3AS//D2cyjM9R+fkiRJGh38N19Jkl7Gw2tr+eyP15CI8H/ecy5vXzgp3SVJkiRJp5XBkSRJfcQYaTzUxW2/Ws99T29nwZQSvn7duUwtL0h3aZIkSdJpZ3AkSRpR2jq7aWzrpKmtK/XTSeOh5GtTW1fvud7XQ6mx7YfndCciIcBfvH4mn7rsDLIzM9J9W5IkSVJaGBxJkoaMzu5Eb9jTE+o0th0b+vSGQX3Cnp4AqKM7cdzvCAEKc7MozsumKC/5WjU2jzPHFFGUl9X7Wc20Ms6bWnqa7lySJEkamgyOJEmDIpGINLUf2+HT1H5sx0/jEd1Ah8OfQ53dJ/yegpxMilKhT1FeFmUFOUwtL+gNfJKvWRTlZVM8Jqt3bM+5gpwsMjLCafgTkSRJkoY/gyNJEjFGWju6j+zo6buMq7fb59gOn8MBUdcJvyc3KyMZ6ORlUTQm+Vo1No+i3P5Dnp7jsWOSr4W5WWS5bEySJEk6bQyTOYoAACAASURBVAyOJGkU2X2wjYfW1vK75+vZ19zR2w3U3J7c1+d4sjJCb5hTPCaLotxsppbnUzzmcMhTfFTo0zcMKsrLIjcr8zTdqSRJkqTBYHAkSSPcnqZ2fvlsLUtX1/LM1gZihDPHFzGlbAxFeUfu69M35ClOdQQlA6Fs8rIzCMElXpIkSdJoYnAkSSNQQ0sHv3p2N0vX7OLJTftIRDhjfCGfetMZXDm/ipkVhekuUZIkSdIwYHAkSSPEwdZOfr1uN0vX1PKnjXvpTkSmjyvg5jfMYsn8iZw5oSjdJUqSJEkaZgyOJGkYa2rr5Dfr61i6upbHX9xDZ3dkStkYbrxkBlfOq+LsicUuL5MkSZL0ihkcSdIw09rRxaPr61m6ZhePPb+Hjq4EE8fm8YGLp7Fk/kTmTx5rWCRJkiRpUBgcSdIw0NbZze+er+cXa2r57fp6DnV2U1GUy3sXV3PVgioWTiklI8OwSJIkSdLgMjiSpCGqvaubP7ywl6VrdvHIujpaOropL8jhHedNYsn8iZw/rYxMwyJJkiRJp5DBkSQNIZ3dCf60cS9L19Ty6+d209TWRUl+NlctmMiS+RO5cEYZWZkZ6S5TkiRJ0ihhcCRJadbVneCpzQ0sXbOLXz27m/2tnRTlZvHmsyewZEEVr501jmzDIkmSJElpYHAkSWmQSESe2dLA0jW1/PLZWvY2d1CQk8mb5o5nyfyJXHLGOHKzMtNdpiRJkqRRzuBIkk6TGCMrth1g6ZpdPLy2lrrGdvKyM7j0rPEsmV/FG86qJC/bsEiSJEnS0GFwJEmnUIyRtTsPsnRNLQ+tqWXngUPkZGXw+jMqWLJgIpeeVUlBrn8rliRJkjQ0+duKJA2yGCPra5tYumYXS9fUsq2hlezMwH+bXcGn33wGb5o7nuK87HSXKUmSJEknZHAkSYPkxbomfrGmlqVrdrFpTwuZGYGLZ5Zzyxtm8ZazJzA237BIkiRJ0vAyoOAohHA5cDuQCXwrxnjbUedLgbuBmUAb8KEY47PHmxtCKAN+AEwDtgDvjjHuf/W3JEmnz+a9LSxdnewser6uiRDgwunlfPi107n87AmUF+amu0RJkiRJesVOGByFEDKBO4DLgB3AMyGEB2OM6/oM+xywKsZ4TQjhrNT4S08w97PAozHG20IIn00df2Ywb06SToXtDa0sTXUWPberEYDzp5Xyv952Nm+dN4HKorw0VyhJkiRJg2MgHUeLgY0xxk0AIYT7gauBvsHRXOCLADHGDSGEaSGE8cCM48y9Gnh9av53gd9hcCRpiNp14BAPpcKi1TsOAnDulBL+9so5XDm/iqqxY9JcoSRJkiQNvoEER5OA7X2OdwAXHDVmNXAt8McQwmJgKjD5BHPHxxhrAWKMtSGEypMvX5JOnfrGNh5eW8vSNbUs25pcSXvOpGI++9azuHJeFVPK8tNcoSRJkiSdWgMJjkI/n8Wjjm8Dbg8hrALWAiuBrgHOPf6Xh3AjcCNAdXX1yUyVpJO2t7mdXz67m4fW7OKpzQ3ECGdNKOKv33wGV86fyPRxBekuUZIkSZJOm4EERzuAKX2OJwO7+g6IMTYCHwQIIQRgc+on/zhz60IIValuoyqgvr8vjzHeBdwFUFNTc1KhkyQNxIHWDn717G6WrqnliU376E5EZlYU8Mk3zuaqBVXMqixKd4mSJEmSlBYDCY6eAWaHEKYDO4HrgPf2HRBCKAFaY4wdwEeAx2OMjSGE4819ELiBZLfSDcDPB+F+JGlAGts6eeS5On6xZhd/fHEvXYnI1PJ8bnrdDJbMn8hZE4pI5uCSJEmSNHqdMDiKMXaFEG4Bfg1kAnfHGJ8LIdyUOn8nMAe4J4TQTXLj6w8fb27q0rcBD4QQPgxsA941uLcmSUdqae/iN+vrWLqmlt8/v4eO7gSTSsbw4ddOZ8n8iZwzqdiwSJIkSZL6CDEOn9VfNTU1cdmyZekuQ9Iwcqijm99uqGfpml38dkM97V0JxhfncuW8iSxZUMXCKSWGRZIkSZJGtRDC8hhjTX/nBrJUTZKGlbbObh5/YQ+/WFPLo+vraO3oZlxhDu85fwpL5k+kZmopGRmGRZIkSZJ0IgZHkkaEnrDo4bW1/GZ9Pc3tXZTmZ3P1uZO4an4VF8woJ9OwSJIkSZJOisGRpGGrv7Bo7Jhsrpg3gSvnT+TimeVkZ2aku0xJkiRJGrYMjiQNK/2FRSX52Vw5r4or5lcZFkmSJEnSIDI4kjTk9YRFD62t5VHDIkmSJEk6bQyOJA1JbZ3d/D7VWXR0WHTl/CouMiySJEmSpFPO4EjSkNE3LPrNujpaOropyc9myfwqrphnWCRJkiRJp5vBkaS06gmLHlpTy6Prk2FRaX42Vy2YaFgkSZIkSWlmcCTptGvr7OZ3z/csQzsyLLpyfhUXzjAskiRJkqShwOBI0mnxcmHR285NdhYZFkmSJEnS0GNwJOmU6QmLHlpby28NiyRJkiRp2DE4kjSokmFRPQ+t3X1MWHTlvIlcOKOMLMMiSZIkSRoWDI4kvWp9w6JH19fR2tFNWUEObzt3ElfOqzIskiRJkqRhyuBI0ivSExYtXVPLbzfU94ZFVxsWSZIkSdKIYXAkacAOdfR0Fh0bFi2ZX8UF0w2LJEmSJGkkMTiSdFwvFxa9fWGys8iwSJIkSZJGLoMjScfoCYuWrq3lMcMiSZIkSRq1DI4kAcmw6LGezqL19Rzq7KbcsEiSJEmSRjWDI2kUe7mw6JpFk1gyr4rFhkWSJEmSNKoZHEmjTG9YlHoaWk9YdO2iZGeRYZEkSZIkqYfBkTQKtHZ08diGPTy89nBYNK7QsEiSJEmSdHwGR9IIddywaH4VF0wvJzMjpLtMSZIkSdIQZnAkjSA9YdFDa3fx2IY9vWHRO86bxBXzDIskSZIkSSfH4Ega5lo7uvjthvrezqK2zoRhkSRJkiRpUBgcScPQy4VF7zxvMlfOm8ji6WWGRZIkSZKkV83gSBpmlq7ZxX//8Vqa2rsYV5jLu86bwhWpDa4NiyRJkiRJg2lAwVEI4XLgdiAT+FaM8bajzo8FvgdUp675lRjjv6fO3Qp8FAjAN2OM/yf1+edTn+9JXeZzMcaHX+0NSSNVZ3eCLz68gbv/tJlF1SX8zVvOMiySJEmSJJ1SJwyOQgiZwB3AZcAO4JkQwoMxxnV9ht0MrIsxXhVCqACeDyHcC5xBMhxaDHQAvwohPBRjfDE172sxxq8M4v1II1JdYxs337uCZVv384GLp/G5K+aQk5WR7rIkSZIkSSPcQDqOFgMbY4ybAEII9wNXA32DowgUhRACUAg0AF3AHODJGGNrau7vgWuALw/aHUgj3JOb9nHL91fS2tHF169fyNsWTEx3SZIkSZKkUWIgLQuTgO19jnekPuvrGyRDol3AWuDWGGMCeBa4JIRQHkLIB64ApvSZd0sIYU0I4e4QQukrvQlpJIoxctfjL/Fn33qK4jFZ/Ozm1xgaSZIkSZJOq4EER/1toBKPOn4LsAqYCJwLfCOEUBxjXA98CXgE+BWwmmQnEsC/ATNT42uBr/b75SHcGEJYFkJYtmfPnv6GSCNOU1snH//eCv7p4Q28ee54fn7zazhjfFG6y5IkSZIkjTIDCY52cGSX0GSSnUV9fRD4SUzaCGwGzgKIMX47xrgoxngJySVsL6Y+r4sxdqc6k75JckncMWKMd8UYa2KMNRUVFSdzb9Kw9EJdE1d/4088sr6O/3HFHP71zxZRlJed7rIkSZIkSaPQQIKjZ4DZIYTpIYQc4DrgwaPGbAMuBQghjAfOBHr2RKpMvVYD1wL3pY6r+sy/huSyNmlU+/mqnVz9jT/R1N7F9z9yAR+9ZAbJrcMkSZIkSTr9Trg5doyxK4RwC/BrIBO4O8b4XAjhptT5O4EvAN8JIawlubTtMzHGvalL/DiEUA50AjfHGPenPv9yCOFcksvetgAfG8T7koaVjq4E//jQOr77xFbOn1bKHe9dRGVxXrrLkiRJkiSNciHGo7crGrpqamrismXL0l2GNKhqDx7i5ntXsGLbAT7y2ul85q1nkZ05kGZASZIkSZJevRDC8hhjTX/nTthxJOnU+a+Ne/nEfStp6+zmjvcu4sr5VSeeJEmSJEnSaWJwJKVBIhG58/GX+Mqvn2dGRSF3vu88ZlUWprssSZIkSZKOYHAknWYHD3Xy6QdW85v1dSyZX8WX3jGfglz/UpQkSZIkDT3+tiqdRutrG7npe8vZuf8Q/3PJXD74mmk+NU2SJEmSNGQZHEmnyY+X7+B//GwtY8dkc/+NF1IzrSzdJUmSJEmSdFwGR9Ip1t7VzT/8Yh33PrWNC2eU8S/XL6KiKDfdZUmSJEmSdEIGR9IptPPAIf7i3hWs3n6Aj71uBn/z5jPJysxId1mSJEmSJA2IwZF0ijz+wh5uvX8lnd2RO993HpefMyHdJUmSJEmSdFIMjqRBlkhE7nhsI//8mxc4o7KIf3vfImZUFKa7LEmSJEmSTprBkTSIDrZ28qkHVvHbDfVcfe5EvnjtPPJz/MtMkiRJkjQ8+RutNEie3XmQj9+7nN0H2/iHq8/mzy+cSggh3WVJkiRJkvSKGRxJg+CBZ7bztz9/lvKCHH7wsYtYVF2a7pIkSZIkSXrVDI6kV6Gts5vPP/gc9z+zndfMKufr1y2kvDA33WVJkiRJkjQoDI6kV2h7Qyt/ce8K1u48yM1vmMlfXXYmmRkuTZMkSZIkjRwGR9Ir8Njz9fzl/atIxMg331/DZXPHp7skSZIkSZIGncGRdBISicjtj77I13/7ImeOL+LO953HtHEF6S5LkiRJkqRTwuBIGqD9LR385Q9W8fsX9nDtokn849vnMSYnM91lSZIkSZJ0yhgcSQOwZscBPv69FexpaucfrzmH9y6uJgT3M5IkSZIkjWwGR9JxxBi57+ntfP7B56goyuWHN13Egikl6S5LkiRJkqTTwuBIehltnd387c+e5UfLd/DfZo/j9usWUlaQk+6yJEmSJEk6bQyOpH5s29fKTd9bzrraRj556WxuvXQ2mRkuTZMkSZIkjS4GR9JRHl1fx6d+sIoQAv/+gfN5w1mV6S5JkiRJkqS0MDiSUroTka898gLfeGwjZ08s5s73nceUsvx0lyVJkiRJUtoYHEnAvuZ2br1/FX/cuJd310zmH64+h7zszHSXJUmSJElSWhkcadRbuW0/N9+7gr0tHXzpHfN4z/nV6S5JkiRJkqQhweBIo1aMke89uZV/WLqO8cV5/Pimi5k3eWy6y5IkSZIkacjIGMigEMLlIYTnQwgbQwif7ef82BDCL0IIq0MIz4UQPtjn3K0hhGdTn/9ln8/LQgiPhBBeTL2WDs4tSSd2qKObv3pgNX/38+d47axxLP3Eaw2NJEmSJEk6ygmDoxBCJnAH8FZgLnB9CGHuUcNuBtbFGBcArwe+GkLICSGcA3wUWAwsAJaEEGan5nwWeDTGOBt4NHUsnXKb97Zwzb/+iZ+t2slfXXYG377hfEryc9JdliRJkiRJQ85AOo4WAxtjjJtijB3A/cDVR42JQFEIIQCFQAPQBcwBnowxtsYYu4DfA9ek5lwNfDf1/rvA21/VnUgD8J/P7eZt//JHdje28Z0PLuaTl84mIyOkuyxJkiRJkoakgQRHk4DtfY53pD7r6xskQ6JdwFrg1hhjAngWuCSEUB5CyAeuAKak5oyPMdYCpF4rX/FdSCfQ1Z3gtl9u4Mb/WM70igKWfuK1vO6MinSXJUmSJEnSkDaQzbH7a8eIRx2/BVgFvBGYCTwSQvhDjHF9COFLwCNAM7CaZCfSgIUQbgRuBKiu9mlXOnl7mtr55H0reWLTPq5fXM3fXzWXvOzMdJclSZIkSdKQN5COox0c7hICmEyys6ivDwI/iUkbgc3AWQAxxm/HGBfFGC8huYTtxdScuhBCFUDqtb6/L48x3hVjrIkx1lRU2CGik7N8awNL/uUPrNi2n//9zvl88dp5hkaSJEmSJA3QQIKjZ4DZIYTpIYQc4DrgwaPGbAMuBQghjAfOBDaljitTr9XAtcB9qTkPAjek3t8A/PyV34Z0pBgj3/nTZt7zf58kNyuTn/zFxbyrZsqJJ0qSJEmSpF4nXKoWY+wKIdwC/BrIBO6OMT4XQrgpdf5O4AvAd0IIa0kubftMjHFv6hI/DiGUA53AzTHG/anPbwMeCCF8mGTw9K7BvDGNXi3tXfz3n6zlwdW7eNOcSr767nMZOyY73WVJkiRJkjTshBiP3q5o6KqpqYnLli1LdxkawjbWN/Px7y3npT3NfPrNZ/Lx1830qWmSJEmSJB1HCGF5jLGmv3MD2RxbGhZ+ubaWv/7hanKzM7nnQxfw2tnj0l2SJEmSJEnDmsGRhr2u7gRf+tUGvvmHzZw7pYR//bNFTCwZk+6yJEmSJEka9gyONKzVN7Vxy/dX8vTmBv78wqn87ZI55Gb51DRJkiRJkgaDwZGGrac3N3Dz91fQ1NbJ196zgGsWTk53SZIkSZIkjSgGRxp2Yox8+4+b+eIvNzCldAz/8eHFnDWhON1lSZIkSZI04hgcaVhpbu/iMz9aw0Nra3nz3PF85d0LKM7LTndZkiRJkiSNSAZHGjZerGvipu8tZ/PeFj771rP42CUzCCGkuyxJkiRJkkYsgyMNC79YvYvP/HgN+TmZ3PuRC7loZnm6S5IkSZIkacQzONKQ1tmd4J8eXs+//2kL500t5Y73LmLC2Lx0lyVJkiRJ0qhgcKQhq66xjZvvXcGyrfv5wMXT+NwVc8jJykh3WZIkSZIkjRoGRxqSnnhpH5+4bwWtHd18/fqFvG3BxHSXJEmSJEnSqGNwpCFl674WvvtfW/nuE1uYWp7P9z96IWeML0p3WZIkSZIkjUoGR0q7RCLy+xf28N0ntvD7F/aQGQLXLJzE3181l6K87HSXJ0mSJEnSqGVwpLQ50NrBD5ft4D+e3Mq2hlYqinK59dLZXL+4mvHFboAtSZIkSVK6GRzptHt250H+44mt/Hz1Tto6EyyeVsbfvOVM3nL2BDe/liRJkiRpCDE40mnR0ZXgl8/Wcs8TW1m+dT9jsjO5ZuFk/vzCqcydWJzu8iRJkiRJUj8MjnRK7T7Yxvef2sr3n97O3uZ2ppXn83dL5vLO8yYzdoz7F0mSJEmSNJQZHGnQxRh5anMD9zyxhV8/V0ciRt54ZiV/ftFULpldQUZGSHeJkiRJkiRpAAyONGha2rv46cqd3PPEFl6oa6YkP5uPvHY6f3bBVKrL89NdniRJkiRJOkkGR3rVXtrTzH88sZUfL99BU3sX50wq5svvnM/bFkwkLzsz3eVJkiRJkqRXyOBIr0h3IvLbDfXc88QW/vDiXrIzA1fOq+L9F09j4ZQSQnA5miRJkiRJw53BkU5KQ0sHP3hmO997cis7DxxiQnEef/3mM3jP+dVUFOWmuzxJkiRJkjSIDI40IKu3H+CeJ7byizW76OhKcNGMcv5uyRzeNGc8WZkZ6S5PkiRJkiSdAgZHelltnd08tKaWe57cyurtByjIyeQ9NVP484umcsb4onSXJ0mSJEmSTjGDIx1j54FD3PvkVu5/ZjsNLR3MqCjgf73tbK5dNImivOx0lydJkiRJkk4TgyMBEGPkTxv3cc8TW/jN+joA3jRnPDdcPI2LZ5a72bUkSZIkSaPQgIKjEMLlwO1AJvCtGONtR50fC3wPqE5d8ysxxn9PnfsU8BEgAmuBD8YY20IInwc+CuxJXeZzMcaHX/Ud6aQ0tXXy4+U7+I8nt/LSnhbKCnK46XUz+bMLpzKpZEy6y5MkSZIkSWl0wuAohJAJ3AFcBuwAngkhPBhjXNdn2M3AuhjjVSGECuD5EMK9QAXwSWBujPFQCOEB4DrgO6l5X4sxfmXwbkcD9UJdE/c8sYWfrthJS0c3C6aU8M/vXsAV86rIy85Md3mSJEmSJGkIGEjH0WJgY4xxE0AI4X7gaqBvcBSBopBcz1QINABdfb5jTAihE8gHdg1S7TpJXd0JHllXxz1PbOWJTfvIycrgqvkTef9FU1kwpSTd5UmSJEmSpCFmIMHRJGB7n+MdwAVHjfkG8CDJUKgIeE+MMQHsDCF8BdgGHAL+M8b4n33m3RJCeD+wDPh0jHH/K7sNHc+epnbuf3ob3396G7UH25hUMobPXH4W7zl/CmUFOekuT5IkSZIkDVEDCY762xU5HnX8FmAV8EZgJvBICOEPJPdEuhqYDhwAfhhCeF+M8XvAvwFfSF3rC8BXgQ8d8+Xh/7V3bzF21VUcx79rKG0t5dKmF5peZiph5FKw6FAokYAoisRQMMEYEFBjELxEUCIiiUbjAwGj0SeDgbTlYgRBJAaDBFF4aAvTArYIBSPTFnpHoI2l0MvyYR+ScbpPOXDo7Nkz38/LuewzmTXJL2fWWfP//ycuBy4HmDVrVgvlCorDrlesfY3FS/p4YOUGdu1JTj96Ej9ZMIezjpnCQR0edi1JkiRJkvavlcHRS8DMfo9nsO92sy8DN2RmAv+KiBeBY4BO4MXM3AIQEfcCpwG3Z+amt784In4D/Knsm2fmzcDNAD09PQMHVhpg56493P/UehYv7WPVy9s4dMwoLj6lk0vmd3LU5PFVlydJkiRJkmqklcHRE8DRETEbeJnicOuLBrxmLfAJ4LGImAp8CPg3xWqlUyNiHMVWtU9QbEsjIqZl5obG118ArGrzZxnR1r6yg9uXreGu3nW8tmMX3VPH89Pz53DBSdM5ZExL/zxPkiRJkiTp/7zjRCEzd0fEN4EHKbae3ZqZz0TEFY3rv6bYarYwIlZSDIuuzcytwNaI+D2wguKw7CdprB4CboyIuRRb1fqAr72vP9kIsHdv8ugLW1i8ZA2PrN5MRwSfPn4ql87v4pTZEynOKpckSZIkSXpvothdVg89PT3Z29tbdRmVe33HLu5evo7bl66h75UdTBo/hovmzeSiUzo58vCxVZcnSZIkSZJqJCKWZ2ZP2TX3MNXIP9dv47alfdz35Hre2LWHns4JXH12N5+ZM43RozqqLk+SJEmSJA0zDo6GuLd27+XBZzayeEkfT/S9ytiDO1jw4elcMr+TOdMPr7o8SZIkSZI0jDk4GqI2bdvJncvWcufja9my/U1mTRzH9ecey4U9Mzhi3Oiqy5MkSZIkSSOAg6MhJDN5ou9VFi3p48FVG9mTyZndk7l0fhdndE+mo8PDriVJkiRJ0uBxcDQE7HhrN/c9uZ7FS/p4buN2Dhs7ii+d1sUXT+2ka9IhVZcnSZIkSZJGKAdHFXpx63+5bcka7l6+ju07d3PctMO44XMnsGDudD4w+qCqy5MkSZIkSSOcg6NBtmdv8rfVm1m0ZA2PPr+FUR3BuSdM49L5nXy0cwIRbkeTJEmSJElDg4OjQbbh9Tf46uJephw6hu+c3c0X5s1kyqFjqy5LkiRJkiRpHw6OBtmMCeP43eXzOWnWERx8UEfV5UiSJEmSJDXl4KgC82ZPrLoESZIkSZKkd+SSF0mSJEmSJJVycCRJkiRJkqRSDo4kSZIkSZJUysGRJEmSJEmSSjk4kiRJkiRJUikHR5IkSZIkSSrl4EiSJEmSJEmlHBxJkiRJkiSplIMjSZIkSZIklXJwJEmSJEmSpFKRmVXX0LKI2AKsqbqO98kkYGvVRajWzJDaZYbUDvOjdpkhtcsMqV1mSO0aThnqzMzJZRdqNTgaTiKiNzN7qq5D9WWG1C4zpHaYH7XLDKldZkjtMkNq10jJkFvVJEmSJEmSVMrBkSRJkiRJkko5OKrOzVUXoNozQ2qXGVI7zI/aZYbULjOkdpkhtWtEZMgzjiRJkiRJklTKFUeSJEmSJEkq5eDoAIuIWyNic0Ss6vfcxIh4KCJeaNxOqLJGDW1NMnRTRDwXEf+IiD9ExBFV1qihrSxD/a5dExEZEZOqqE310CxDEfGtiFgdEc9ExI1V1aehr8nvsrkRsTQinoqI3oiYV2WNGtoiYmZEPBIRzzbec77deN6+Wi3ZT4bsq9WSZhnqd33Y9tUOjg68hcA5A577PvBwZh4NPNx4LDWzkH0z9BAwJzNPBJ4HrhvsolQrC9k3Q0TETOBsYO1gF6TaWciADEXEx4EFwImZeTzwswrqUn0sZN/3oRuBH2fmXOCHjcdSM7uB72bmscCpwDci4jjsq9W6Zhmyr1armmVo2PfVDo4OsMx8FPjPgKcXAIsa9xcB5w9qUaqVsgxl5l8yc3fj4VJgxqAXptpo8j4E8Avge4CH3Wm/mmToSuCGzHyz8ZrNg16YaqNJhhI4rHH/cGD9oBalWsnMDZm5onF/O/AsMB37arWoWYbsq9Wq/bwPwTDvqx0cVWNqZm6AInzAlIrrUb19Bfhz1UWoXiLiPODlzHy66lpUW93A6RGxLCL+HhEnV12Qaucq4KaIWEexYs2/8qslEdEFnAQsw75a78GADPVnX62W9M/QSOirR1VdgKT3LiKup1gyeUfVtag+ImIccD3wqaprUa2NAiZQLNU+GbgrIj6Y/rtWte5K4OrMvCciPg/cAnyy4po0xEXEeOAe4KrM3BYRVZekmhmYoX7P21erJf0zRJGZYd9Xu+KoGpsiYhpA49bl/XrXIuIy4LPAxX5Q07t0FDAbeDoi+iiWZK+IiCMrrUp18xJwbxYeB/YCw+4wSB1QlwH3Nu7fDXg4tvYrIg6m+LB2R2a+nR37arWsSYbsq9WykgyNiL7awVE17qdolmjc/rHCWlRDEXEOcC1wXmbuqLoe1UtmrszMKZnZlZldFAOAj2TmxopLU73cB5wFEBHdwGhga6UVqW7WA2c07p8FvFBhLRriolhadAvwbGb+vN8l+2q1pFmG7KvVqrIMjZS+OhyoHlgR8VvgTIq/wm4CfkTRbN8FzKI4df3CzCw7uFZqlqHrgDHAK42XLc3MKyopUENeWYYy85Z+1/uAnsz0Q79KNXkfaH5BngAAAKlJREFUug24FZgLvAVck5l/rapGDW1NMrQa+CXFtsedwNczc3lVNWpoi4iPAY8BKylWOAL8gOKMGvtqvaP9ZOhX2FerBc0ylJkP9HtNH8Owr3ZwJEmSJEmSpFJuVZMkSZIkSVIpB0eSJEmSJEkq5eBIkiRJkiRJpRwcSZIkSZIkqZSDI0mSJEmSJJVycCRJkiRJkqRSDo4kSZIkSZJUysGRJEmSJEmSSv0P+YHm7W2OKxMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "score = []\n",
    "for i in range(10,25):\n",
    "    X_dr = PCA(i).fit_transform(x)\n",
    "    once = cross_val_score(RFC(n_estimators=10,random_state=0),X_dr,y,cv=5).mean()\n",
    "    score.append(once)\n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(range(10,25),score)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 找出最佳维度进行降维并查看模型效果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9454523809523809"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_dr = PCA(23).fit_transform(x)\n",
    "\n",
    "cross_val_score(RFC(n_estimators=100, random_state=0), x_dr, y, cv=5).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 改用KNN进行建模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier as KNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9698333333333334"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(KNN(), x_dr, y, cv=5).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 用模型曲线探索最佳超参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABI4AAAEvCAYAAAAjE4p1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde3iU9Z3//+dnZjI5n08EkgBJgASRgyIKeAZba7d1a0/a3e32aO23Uq3b7tft7vbb3f1167rbKlq3tmt12+3WY2tra1sVsB5ARTQBgQRIOCUk5EgO5DiZ+fz+mJvJECMECNw5vB7XxZW5DzPzvtte08wrn/f7NtZaREREREREREREhvO4XYCIiIiIiIiIiIxPCo5ERERERERERGRECo5ERERERERERGRECo5ERERERERERGRECo5ERERERERERGRECo5ERERERERERGREPrcLOBVZWVl21qxZbpchIiIiIiIiIjJpvPXWWy3W2uyRjk2o4GjWrFls2bLF7TJERERERERERCYNY8yB9zqmVjURERERERERERmRgiMRERERERERERmRgiMRERERERERERmRgiMRERERERERERmRgiMRERERERERERmRgiMRERERERERERmRgiMRERERERERERnRqIIjY8y1xphdxphqY8ydIxxPN8Y8bYzZZozZbIxZ4OyfZ4ypiPrXaYy53TmWYYx5wRizx/mZPraXJiIiIiIiIiIiZ+KkwZExxgs8AHwAmA/cZIyZP+y0bwIV1tqFwKeBtQDW2l3W2sXW2sXAhUAP8LTznDuB9dbaOcB6Z1tERERERERERMaJ0aw4WgZUW2v3WmsHgMeA64edM59w+IO1tgqYZYzJHXbOKqDGWnvA2b4e+Knz+KfAn59G/SIiIjLBNHT08szWenbWdxIKWbfLEREREZET8I3inBlAbdR2HXDxsHO2AjcArxpjlgEzgXygMeqcG4FHo7ZzrbUNANbaBmNMzkhvboy5GbgZoLCwcBTlioiIyHgSClm213ewrrKJ9ZWN7KjvjBzLSPSzvDiTlcVZrCzJpDAjAWOMi9WKiIiISLTRBEcj/fY2/M+DdwFrjTEVwDtAOTAYeQFj/MCHgb871QKttT8GfgywdOlS/VlSRERkAugdCPJqdQvrKxvZUNVEU1c/HgMXzkzn/15b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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "score = []\n",
    "\n",
    "for i in range(10):\n",
    "    X_dr = PCA(23).fit_transform(x)\n",
    "    once = cross_val_score(KNN(i+1),X_dr,y,cv=5).mean()\n",
    "    score.append(once)\n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(range(10),score)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "查看最好的效果得分多少"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9689285714285715"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(KNN(4), x_dr, y, cv=5).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
